home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS065.dsk / PAY.bas < prev    next >
BASIC Source File  |  2012-02-16  |  4KB  |  114 lines

  1. 10  REM  MON GOES HERE
  2. 100  HOME : PRINT "INSERT PFILE DISK AND HIT RETURN"
  3. 101  INPUT X$
  4. 102 NN = 450
  5. 105  DIM P$(NN)
  6. 110 Z$ = "<CTRL-D>"
  7. 111  PRINT Z$;"CATALOG"
  8. 112  HOME 
  9. 120  PRINT Z$;"OPEN PFILE"
  10. 130  PRINT Z$;"READ PFILE"
  11. 140  FOR E = 0 TO NN
  12. 150  INPUT P$(E)
  13. 160  NEXT E
  14. 170  PRINT Z$;"CLOSE PFILE"
  15. 200  REM  PAYMENTS
  16. 210  HOME : PRINT "      PAYMENTS"
  17. 211  INPUT "ENTER COMPANY ACCOUNT #";A$
  18. 212  PRINT "ENTER COMPANY NAME ": INPUT N$
  19. 220  INPUT "ENTER ORIGINAL BILL DATE MONTH/DAY/YEAR   ";OD$
  20. 230 D$ = OD$: GOSUB 1000
  21. 231 OD$ = D$
  22. 240  PRINT "ENTER PAYMENT DATE  MONTH/DAY/YEAR ": INPUT "  ";PD$
  23. 250 D$ = PD$: GOSUB 1000:PD$ = D$
  24. 260  PRINT "ENTER THE AMOUNT OF PAYMENT ": INPUT "$";AM$
  25. 270  PRINT "ENTER THE CHECK #";: INPUT I$
  26. 271 I$ = " " +I$
  27. 280  INPUT "ENTER ANY COMMENTS ";C$
  28. 281 C$ = "PAID" +C$
  29. 290  HOME 
  30. 291  PRINT "ACCOUNT #";A$: PRINT "COMPANY-";N$: PRINT "ORIGINAL BILL DATE  ";OD$: PRINT "PAYMENT DATE        ";PD$: PRINT "AMOUNT $";AM$: PRINT "CHECK #";I$: PRINT "COMMENTS - ";C$
  31. 295  PRINT "IF THIS INFORMATION IS CORRECT": PRINT "   HIT RETURN"
  32. 296  PRINT : PRINT "IF THERE ARE ANY CHANGES OR CORRECTIONS ": PRINT "  THEN TYPE IN A C": INPUT X$
  33. 297  IF X$ = "C"  THEN 200
  34. 300  REM  FIND EMPTY P$
  35. 310  FOR E = 0 TO NN
  36. 320  IF P$(E) = ""  THEN 400
  37. 330  NEXT E
  38. 340  PRINT "FILE IS FULL": STOP 
  39. 400  REM  PLACES DATA IN P$
  40. 410  IF  LEN(A$) = 3  THEN 430
  41. 411  IF  LEN(A$) >3  THEN  PRINT "ACCOUNT # MAY ONLY BE THREE #'S ": GOTO 200
  42. 420 A$ = "0" +A$: GOTO 410
  43. 430 P$(E) = PD$ +A$
  44. 440  IF  LEN(N$) = 25  THEN 460
  45. 444  IF  LEN(N$) >25  THEN N$ =  LEFT$(N$,25): GOTO 460
  46. 450 N$ = N$ +" ": GOTO 440
  47. 460 P$(E) = P$(E) +N$
  48. 470  REM  CHECK#
  49. 471  IF  LEN(I$) = 9  THEN 475
  50. 472 I$ = I$ +" ": GOTO 471
  51. 475 P$(E) = P$(E) +I$
  52. 480  REM  AMOUNT
  53. 481 AM =  VAL(AM$):V = AM: GOSUB 6000:AM$ = V$:AM =  VAL(AM$) * -1:AM$ =  STR$(AM)
  54. 482  IF  LEN(AM$) =  >10  THEN 485
  55. 483 AM$ = " " +AM$: GOTO 482
  56. 485 P$(E) = P$(E) +AM$
  57. 490  REM  COMMENTS
  58. 491  IF  LEN(C$) >15  THEN C$ =  LEFT$(C$,15)
  59. 492  IF  LEN(C$) = 15  THEN 495
  60. 493 C$ = C$ +" ": GOTO 492
  61. 495 P$(E) = P$(E) +C$
  62. 496 P$(E) = P$(E) +OD$
  63. 500  REM  ALL DATA IN
  64. 505  HOME 
  65. 510  PRINT "TYPE IN A 'Y' IF THERE IS ANOTHER": PRINT "ENTRY FOR  ";N$
  66. 511  PRINT : PRINT "OTHERWISE HIT RETURN "
  67. 520  INPUT X$
  68. 521  IF X$ = "Y"  THEN PD$ = "":OD$ = "":I$ = "":AM$ = "":C$ = "": HOME : PRINT A$: PRINT N$: GOTO 220
  69. 530  HOME : PRINT "ANY MORE ENTRY'S FOR THE JOURNAL (Y/N) ": INPUT X$
  70. 531  IF X$ = "N"  THEN 900
  71. 535  GOTO 200
  72. 900  REM  WRITE TO DISK TWICE
  73. 910  PRINT Z$;"CATALOG": HOME 
  74. 920  PRINT Z$;"OPEN PFILE"
  75. 930  PRINT Z$;"WRITE PFILE"
  76. 940  FOR E = 0 TO NN
  77. 950  PRINT P$(E)
  78. 960  NEXT E
  79. 970  PRINT Z$;"CLOSE PFILE"
  80. 980  PRINT "INSERT BACKUP DISK"
  81. 985  PRINT " AND HIT RETURN WHEN READY"
  82. 989  INPUT X$
  83. 990  PRINT Z$;"CATALOG": HOME 
  84. 991  PRINT Z$;"OPEN PFILE"
  85. 992  PRINT Z$;"WRITE PFILE"
  86. 993  FOR E = 0 TO NN
  87. 994  PRINT P$(E)
  88. 995  NEXT E
  89. 996  PRINT Z$;"CLOSE PFILE"
  90. 997  PRINT "END OF DISK WRITE ROUTINE"
  91. 998  PRINT "THANK YOU"
  92. 999  END 
  93. 1000  REM  SUB FOR DATE CONVERSION
  94. 1010 M$ =  LEFT$(D$,2)
  95. 1020  IF  MID$ (D$,2,1) = "/"  THEN M$ = "0" + LEFT$(D$,1)
  96. 1030 DY$ =  MID$ (D$,3,1): IF DY$ = "/"  THEN DY$ =  MID$ (D$,4,1): GOTO 1060
  97. 1040 DA$ =  MID$ (D$,4,1): IF DA$ = "/"  THEN DY$ = "0" +DY$:DA$ = "": GOTO 1070
  98. 1050  IF DA$ < >"/"  THEN 1070
  99. 1060 DA$ =  MID$ (D$,5,1): IF DA$ = "/"  THEN DY$ = "0" +DY$: GOTO 1080
  100. 1070 DY$ = DY$ +DA$
  101. 1080 YR$ =  RIGHT$(D$,2)
  102. 1090 D$ = M$ +"/" +DY$ +"/" +YR$: RETURN 
  103. 6000  REM  FOR ROUND
  104. 6005 V =  INT(V *10 ^2 +.5)/ INT(10 ^2 +.5)
  105. 6010  IF V < > INT(V)  THEN 6021
  106. 6020 V$ =  STR$(V) +".00": GOTO 6040
  107. 6021 V1 = V - INT(V)
  108. 6022 V1 =  INT(V1 *100 +.5)/100
  109. 6030 V$ =  STR$(V1)
  110. 6031  IF  LEN(V$) = 2  THEN V$ = V$ +"0"
  111. 6032 V$ =  STR$( INT(V)) +V$
  112. 6040  IF  LEN(V$) =  >10  THEN 6050
  113. 6045 V$ = " " +V$: GOTO 6040
  114. 6050  RETURN